package com.bookocean.controller.dto;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 小说章节数据传输对象
 * 
 * @author BookOcean
 * @since 2024-01-01
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class NovelChapterDto {
    
    /**
     * 章节ID
     */
    private Long id;
    
    /**
     * 小说ID
     */
    @NotNull(message = "小说ID不能为空")
    private Long novelId;
    
    /**
     * 章节标题
     */
    @NotBlank(message = "章节标题不能为空")
    private String title;
    
    /**
     * 章节内容
     */
    @NotBlank(message = "章节内容不能为空")
    private String content;
    
    /**
     * 章节序号
     */
    private Integer chapterNumber;
    
    /**
     * 作者ID
     */
    private Long authorId;
    
    /**
     * 作者昵称
     */
    private String authorNickname;
    
    /**
     * 作者头像
     */
    private String authorAvatarUrl;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 点赞数
     */
    private Integer likeCount;
    
    /**
     * 评论数
     */
    private Integer commentCount;
    
    /**
     * 收藏数
     */
    private Integer favoriteCount;
    
    /**
     * 当前用户是否已点赞
     */
    private Boolean isLiked;
    
    /**
     * 当前用户是否已收藏
     */
    private Boolean isFavorited;
}
